Network Address Translation & Access Control List
![Rayhan [RA]](https://github.com/rayhan-akbar.png)
TUJUAN PRAKTIKUM
- Mempelajari peran dan kegunaan NAT (Network Address Translation) serta cara menkonfigurasi dan implementasi NAT pada jaringan.
- Mempelajari definisi, fungsi, konsep dan tata cara penggunaan ACL.
- Memahami dan mampu menganalisis kondisi yang tepat dalam mengimplementasikan ACL.
- Memahami bagaimana cara mengkonfigurasi ACL.
A. Network Address Translation (NAT)
Network Address Translation (NAT) merupakan suatu metode untuk menghubungkan lebih dari satu host ke internet dengan menggunakan satu atau sedikit alamat IP. Hal ini disebabkan oleh ketersediaan alamat IP yang terbatas, keamanan, serta kebutuhan akan fleksibilitas dalam administrasi jaringan.


Dalam penggunaan NAT, dikenal dua istilah yaitu ip inside (private) dan ip outside (public). Ip inside merupakan ip internal yang digunakan
pada jaringan dalam. Sedangkan ip outside merupakan ip eksternal yang digunakan untuk berhubungan dengan jaringan luar.
Router yang dikonfigurasi dengan NAT akan membaca ip address tujuan dari suatu paket dan mengecek apakah ip address asal paket tersebut valid
untuk ditranslasikan dengan menggunakan access-list yang sudah dimiliki oleh router tersebut. Ketika criteria terpenuhi, maka ip lokal dari
paket tersebut akan ditranslasikan ke ip global. Pemetaan ini akan disimpan di table NAT. Ketika paket sampai dan server merespon, router akan
memeriksa kembali table NAT dan mentranslasikan lagi ip global tersebut menjadi ip local sebelumnya.


Catatan :
- Inside address adalah alamat yang akan ditranslate oleh NAT
- Outside address adalah alamat tujuan
- Local address adalah setiap alamat yang ada pada jaringan lokal
- Global address adalah setiap alamat yang ada pada porsi luar dari jaringan
Static NAT
Static NAT adalah translasi alamat satu ke satu dari alamat lokal ke global


Konfigurasi terdiri dari 3 tahap:
- Set mapping:
Router(config)# ip nat inside source static [ip inside lokal] [ip inside global]
- Terapkan pada interface lokal
Router(config)# interface [interface lokal]
Router(config-if)# ip nat inside
- Terapkan pada interface ke global
Router(config)# interface [interface ke global]
Router(config-if)# ip nat outside
Dynamic NAT
Dynamic NAT adalah translasi alamat banyak ke banyak dari alamat lokal ke global.

Konfigurasi terdiri dari 5 tahap:
- Set POOL IP:
Router(config)# ip nat pool [nama pool ip] [ip inside global(batas bawah)] [ip inside global(batas atas)] netmask [network mask]
- Bind alamat network inside lokal pada ACL untuk mengizinkan translasi
Router(config)# access-list [nomor access list] permit [alamat network inside lokal] [source-wildcard mask]
- Set Dynamic NAT:
Router(config)# ip nat inside source list [nomor access list] pool [nama pool ip]
- Terapkan pada interface local
Router(config)# interface [interface lokal]
Router(config-if)# ip nat inside
- Terapkan pada interface ke global
Router(config)# interface [interface ke global]
Router(config-if)# ip nat outside
Port Address Translation (PAT)
PAT adalah translasi alamat banyak ke satu dari alamat lokal ke global. Metode PAT diketahui juga sebagai NAT overloading

Konfigurasi PAT dengan overload (banyak source dengan satu ip outside) terdiri dari 3 tahap:
- Menentukan alamat-alamat yang diizinkan untuk ditranslasikan
Router(config)# access-list [acl-number] permit [alamat network inside lokal] [source- wildcard mask]
- Mengizinkan translasi dari source yang dinamis dengan menspesifikasikan access-list yang dipakai
Router(config)#ip nat inside source list acl-number interface [interface ke global] overload
- Terapkan pada interface internal/local
Router(config)#interface [interface internal/lokal]
Router(config-if)#ip nat inside
- Menspesifikasikan interface eksternal
Router(config)#interface [interface eksternal/global]
Router(config-if)#ip nat outside
Contoh konfigurasi PAT pada router :

R1(config)# access-list 1 permit 192.168.0.0 0.0.0.255
R1(config)#ip nat inside source list 1 interface s0/0/1 overload
R1(config)#interface s0/0/1
R1(config-if)#ip nat outside
R1(config)#interface s0/0/0
R1(config-if)#ip nat inside
NAT Troubleshooting & Evaluation
- Untuk melihat statistik NAT digunakan perintah:
Router# show ip nat statistics
- Untuk melihat translasi NAT gunakan perintah:
Router# show ip nat translations
- Untuk melihat apakah servis NAT sudah berjalan, dapat dilakukan dengan menggunakan konfigurasi:
Router#debug ip nat

Dengan konfigurasi tersebut apabila ada paket yang melewati router dan servis NAT berhasil berjalan maka akan muncul tampilan ip yang ditranslasikan.
- Untuk menghapus statistik NAT digunakan perintah:
Router# clear ip nat statistics
- Untuk menghapus seluruh translasi NAT gunakan perintah:
Router# clear ip nat translations *
B. Access Control List (ACL)
Access lists berfungsi untuk menyaring lalu lintas jaringan, dengan mengontrol apabila sebuah paket data diteruskan (forward) atau diblok (drop) pada sebuah interface router. Sebuah router akan memeriksa setiap paket yang melewati interface tersebut, diteruskan atau tidaknya tergantung dari kriteria access list. Kriteria access list dapat memeriksa sumber datangnya paket data, tujuan paket data, protokol pada layer atas, dan informasi lainnya. Karena dasar access list hanyalah sebuah set kondisi tanpa autentikasi, sangat memungkinkan untuk lolosnya paket yang tidak diinginkan yang disebabkan oleh kesalahan pada konfigurasi. Terdapat banyak alasan untuk mengkonfigurasi access list pada sebuah router. Contohnya adalah untuk merestriksi konten routing update atau untuk mengontrol lalu lintas paket data. Salah satu alasan yang terpenting adalah untuk mengamankan jaringan. Access list seharusnya digunakan untuk keamanan dasar aksesibilitas sebuah jaringan, untuk menangkal paket-paket data yang bahkan tidak seharusnya masuk ke dalam sebuah jaringan.
Pada contoh di bawah ini, penggunaan access list yang memperbolehkan paket data dari host A (host A) masuk ke dalam jaringan "Human Resource Network" dan melarang paket data dari host b (host b) untuk masuk.

ACL Number Range
Protocol | Range |
---|---|
Standard IP | 1-99 and 1300-1999 |
Extended IP | 100-199 and 2000-2699 |
Ethernet type code | 200-299 |
Ethernet address | 700-799 |
Transparent bridging (protocol type) | 200-299 |
Transparent bridging (vendor code) | 700-799 |
Extended transparent bridging | 1100-1199 |
DECnet and extended DECnet | 300-399 |
Xerox Network Systems (XNS) | 400-499 |
Extended XN | 500-599 |
AppleTalk | 600-699 |
Source-route bridging (protocol type) | 200-299 |
Source-route bridging (vendor code) | 700-799 |
Internetwork Packet Exchange (IPX) | 800-899 |
Extended IPX | 900-999 |
IPX Service Advertising Protocol (SAP) | 1000-1099 |
Standard Virtual Integrated Network Service (VINES) | 1-100 |
Extended VINES | 101-200 |
Simple VINES | 201-300 |
ACL COMMAND SET
Standard ACL commands
- Creating a standard access-list.
WITH NUMBER
Router(config)# access-list access-list-number {permit | deny} {source [source-wildcard] | host hostname | any}
Example:
Router(config)# access-list 10 deny any
Router(config)# access-list 11 deny 192.168.1.0 0.0.0.255
WITH NAMED ACL
Router(config)# ip access-list standard {accesslist-name}
Router(config-std-nacl)# [sequence-number] {permit | deny} {source [source-wildcard] | host hostname | any}
Example:
Router(config)# ip access-list standard admin
Router(config-std-nacl)# 12 permit 192.168.0.0 0.0.0.255
- Applying an access-list to a specific interface.
Router(config-if)# ip access-group {access-listnumber | access-list-name} {in | out}
Example:
Router(config-if)# ip access-group admin out
Router(config-if)# ip access-group 10 out
Extended ACL commands
- Creating an extended access-list.
Router(config)# ip access-list extended {accesslist-name}
Router(config-ext-nacl)# [sequence-number] {permit | deny} protocol source source-wildcard destination destination-wildcard [option optionvalue] [precedence precedence] [tos tos] [fragments] [time-range time-range-name] [log]
Example:
Router(config)# ip access-list extended ACL
Router(config-ext-nacl)# deny tcp host
192.168.0.2 host 192.168.4.2 eq 80
Explanation of example: Deny traffic of TCP port 80 (HTTP) from specific source 192.168.0.2 to specific destination 192.168.4.2.
- Applying an access-list to a specific interface.
Router(config-if)# ip access-group {access-listnumber | access-list-name} {in | out}
Example:
Router(config-if)# ip access-group ACL in
ACL Troubleshooting & Evaluation
- Displays the contents of one or all current access lists.
Router# show access-lists [access-list-number | access-list-name]
- Displays information regarding compiled access lists, including the state of each compiled access list.
Router# show access-list compiled
- Displays the contents of current IP access lists.
Router# show ip access-list [access-list-number | name]
- Displays the active IP accounting or checkpointed database
Router# show ip accounting [checkpoint]